home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / rexx / moveto.avm < prev    next >
Text File  |  1994-06-24  |  2KB  |  56 lines

  1. /* copies a log from one mailbox to another */
  2.  
  3. parse upper arg mailbox mailbox2 logs
  4.  
  5. if upper(mailbox) = upper(mailbox2) then exit
  6.  
  7. numlogs = words(logs)
  8.  
  9. do i = 1 to numlogs
  10.     call loadLogEntry(mailbox, word(logs, i))
  11.         /* copy log itself */
  12.     address command 'copy >nil: <nil: quiet' logFile(mailbox, word(logs, i)) || "#?" logFile(mailbox2, '')
  13.  
  14.         /* copy filenames referenced if they aren't absolute filenames */
  15.     if (log.fileName ~= "" & (verify(log.fileName, '/:', 'M') = 0)) then 
  16.         address command 'copy >nil: <nil: quiet' voiceFile(mailbox, log.fileName) || "#?" voiceFile(mailbox2, '')
  17.     if (log.altFileName ~= "" & (verify(log.altFileName, '/:', 'M') = 0)) then
  18.         address command 'copy >nil: <nil: quiet' voiceFile(mailbox, log.altFileName) || "#?" voiceFile(mailbox2, '')
  19.     address rexx 'broadcast' 'addtomailbox' mailbox2 word(logs, i)
  20. end
  21.  
  22. /* delete logs from original place */
  23. address rexx 'delete' mailbox logs
  24.  
  25. exit
  26.  
  27. error:
  28.     exit
  29.  
  30. voiceFile: procedure
  31.     parse arg mailbox, magiccookie
  32.  
  33.     return 'avm:' || mailbox || '/voices/' || magiccookie
  34.  
  35. logFile: procedure
  36.     parse arg mailbox, magiccookie
  37.  
  38.     return 'avm:' || mailbox || '/logs/' || magiccookie
  39.  
  40. loadLogEntry: procedure expose log.
  41.     if arg() ~= 2 then do
  42.         rc = "loadLogEntry: bad args"
  43.         signal error
  44.     end
  45.     parse arg mailbox, handle
  46.  
  47.     call open(handle, logFile(mailbox, handle), 'r')
  48.     do while ~eof(handle)
  49.         line = readln(handle)
  50.         parse upper var line variable '=' value
  51.         log.variable = value
  52.     end
  53.     call close(handle)
  54.     return
  55.  
  56.